package com.huilian.iotbox.admin.wap.dao;

import com.huilian.iotbox.data.dto.MemberDto;
import com.huilian.iotbox.data.dto.MemberStoreBalanceDto;
import com.huilian.iotbox.data.dto.StatsStoreDto;
import com.huilian.iotbox.data.dto.StatsUserDto;
import com.huilian.iotbox.data.po.Member;
import com.huilian.iotbox.data.po.MemberStoreBalance;
import com.huilian.iotbox.data.vo.MemberStoreBalanceVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface MemberStoreBalanceDao {

    MemberStoreBalanceVo findMemberStoreBalanceByMerchantStoreId(MemberStoreBalanceDto memberStoreBalanceDto);

    Integer updateMemberStoreBalance(MemberStoreBalance memberStoreBalance);

    Integer findMemberCountByMerchantStoreId(@Param(value = "memberDto") MemberDto memberDto, @Param(value = "merchantStoreIdList") Integer[] merchantStoreIdList);

    MemberStoreBalanceVo findOneMemberStoreBalanceByPermission(MemberStoreBalanceDto memberStoreBalanceDto);

    MemberStoreBalanceVo findCoinDetail(MemberStoreBalanceDto memberStoreBalanceDto);

    Integer updateByMemberIdAndMerchantStoreId(MemberStoreBalanceDto memberStoreBalanceDto);

    MemberStoreBalanceVo findSumCoinByMemberId(MemberStoreBalanceDto memberStoreBalanceDto);


    Integer findDayMemberNewNumByUserId(StatsUserDto statsUserDto);

    Integer findMemberNewNumByStoreId(StatsStoreDto statsUserDto);

    Integer findDayMemberOldNumByUserId(StatsUserDto statsUserDto);

    Integer findDayMemberConsumeByUserId(StatsUserDto statsUserDto);

    Integer findMemberOldNumByStoreId(StatsStoreDto statsStoreDto);

    MemberStoreBalanceVo findByMemberIdAndMerchantStoreId(MemberStoreBalanceDto memberStoreBalanceDto);

    int updateBalance(MemberStoreBalanceDto memberStoreBalanceDto);

    void add(MemberStoreBalanceDto memberStoreBalanceDto);

    int updateBalanceByMemberId(MemberStoreBalance memberStoreBalance);
}
